void arch_init_memory(void)
{
unsigned long mfn;
- int i;
/*
* We are rather picky about the layout of 'struct pfn_info'. The
frame_table[mfn].u.inuse.type_info = PGT_gdt_page | 1; /* non-RW */
frame_table[mfn].u.inuse.domain = dom_xen;
}
-
- vm_assist_info[VMASST_TYPE_writable_pagetables].enable = NULL;
- vm_assist_info[VMASST_TYPE_writable_pagetables].disable = NULL;
-
- for ( i = 0; i < smp_num_cpus; i++ )
- {
- ptwr_info[i].disconnected_page = (void *)alloc_xenheap_page();
- ptwr_info[i].writable_page = (void *)alloc_xenheap_page();
- }
}
static void __invalidate_shadow_ldt(struct domain *d)
return 0;
}
+static __init int ptwr_init(void)
+{
+ int i;
+
+ for ( i = 0; i < smp_num_cpus; i++ )
+ {
+ ptwr_info[i].disconnected_page = (void *)alloc_xenheap_page();
+ ptwr_info[i].writable_page = (void *)alloc_xenheap_page();
+ }
+
+ return 0;
+}
+__initcall(ptwr_init);
+
#ifndef NDEBUG
void ptwr_status(void)
{